import java.io.*;
import java.util.*;

public class Example {
    public static void main(String[] args) {
        File file = new File("price.txt");
        Scanner sc = null;
        double sum = 0;
        int count = 0;
        try {
            sc = new Scanner(file);
            sc.useDelimiter("[^0-9.]+"); // 修正正则表达式以匹配数字和小数点
            sc.useLocale(Locale.US); // 确保小数点被正确解析为'.'

            while (sc.hasNext()) {
                if (sc.hasNextDouble()) { // 检查下一个标记是否是double类型
                    double price = sc.nextDouble(); // 读取价格
                    count++; // 有效价格数量加一
                    sum += price; // 累加价格到总和中
                    // System.out.println(price); // 如果不需要在控制台打印价格，可以注释掉这行
                } else {
                    sc.next(); // 如果不是double类型，则跳过该项
                }
            }

            if (count > 0) {
                double average = sum / count;
                System.out.println("平均价格：" + average);

                // 将平均值追加到price.txt文件末尾（注意：这可能会使文件内容变得难以管理）
                try (FileWriter fw = new FileWriter(file, true); // 以追加模式打开文件
                     BufferedWriter bw = new BufferedWriter(fw)) {
                    bw.write("\n平均价格: " + average); // 写入平均价格，前面加一个换行符
                } catch (IOException e) {
                    System.out.println("写入平均价格时发生异常: " + e.getMessage());
                }
            } else {
                System.out.println("没有找到有效的价格来计算平均值。");
            }
        } catch (FileNotFoundException e) {
            System.out.println("文件未找到: " + e.getMessage());
        } finally {
            if (sc != null) {
                sc.close(); // 确保Scanner对象被关闭
            }
        }
    }
}